# Hackware Web Services

## Description

Hackware Web Services or "Hawese" is a modular web API which returns JSON responses.

Its structure is based on Laravel/Lumen 5.8+ packages. It can be mounted as a monolithical web service or as various microservices depeding on how you structure your `composer.json`.

## Features (packages)

- [Core](https://git.hackware.cl/hawese-core): Lightweight base class for table based models, standardized JSON responses and User model.
- [Wallet](https://git.hackware.cl/hawese-wallet): Digital wallet that associates transactions and balance to unique users.
- [Payment](https://git.hackware.cl/hawese-payment): Payment through various payment gateways. Currently Khipu and Flow.

## How to pronounce Hawese?

You can pronounce it as "how easy".

## Run it

### Requirements

Please refer to the requirements of each package. Basically the same as of Lumen/Laravel 5.8+ and composer.

### Installation

#### Manual

1. `git clone https://git.hackware.cl/hawese`
2. Setup your environment variables based on the `.env.example` file. It will load .env.*APP_ENV* if you set the APP\_ENV environment variable beforehand. Elsewhere it will load the `.env` file.
3. Add the desired hawese projects (`hackware/hawese-{payment,wallet,seeds}`) to composer.json
4. `composer install && composer run collect-public`.
4. Run from the `public/` path.

#### Automated

1. `git clone https://git.hackware.cl/hawese`
2. Run `setup/setup.sh` on Debian as root, or optionally `setup/setup_lxd.sh` with the proper environment variables configured (defined on those files).
3. Manually edit the `.env` file for missing configurations.
4. Setup your endpoints through DNS or `/etc/hosts`.

Find detailed documentation and configuration options in each project.

### Tests

If you are developing Hawese run tests with `composer test` or `composer test-coverage`.

Add directories for your project tests as testsuite on `phpunit.xml.dist` and to its whitelist for coverage analysis.

## Copyright and licensing

Copyright 2019-2022 [Hackware SpA](https://hackware.cl).

This project license defaults to GPL 3.0 or later if you use any of the following projects (since are AGPL licensed):

- `hackware/hawese-wallet`
- `hackware/hawese-payment`

If you don't use that dependencies in the `composer.json` file then you can choose to use the MIT-0 license terms.

The core library `hackware/hawese-core` is released under the terms of the MIT license. Non listed dependencies are released under permisive licenses too.

I will greatly appreaciate your contributions back. Please free your software too.
